package com.company;

import javax.sound.sampled.Line;
import java.math.BigInteger;
import java.util.*;

/**
 * @author jrue
 * @description
 * @date 2019/12/4 14:52
 *
 * 从字符串string开始完整匹配子串sub，返回匹配到的字符个数。
 *
 * sub中如果出现'?'表示可以匹配一到三个除'\0'以外的任意字符。
 * 如果sub还有找不到匹配的字符，则说明不能完整匹配。
 *
 * 如果能完整匹配，返回匹配到的字符个数，如果有多种匹配方式，返回匹配字符数最少的那个，如果不能完整匹配，返回-1
 *
 *
 * 输入描述:
 * 第一行输入字符串string，长度小于10000
 *
 * 第二行输入子串sub，长度小于100
 *
 * 输出描述:
 * 从string开头位置完整匹配sub，匹配到的字符个数。
 *
 * 输入例子1:
 * abcdefg
 * a?c
 *
 * 输出例子1:
 * 3
 */
public class Sangfor01 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt(), m = scanner.nextInt();
        int[] array = new int[n + 1];
        for (int i = 1; i <= n; i++)
            array[i] = scanner.nextInt();

        int res = 0;
        int[] dp = new int[n + 1];
        int[] maxArray = new int[n + 1];
        for (int i = 1; i <= m; i++) {
            res = Integer.MIN_VALUE;
            for (int j = i; j <= n; j++) {
//                if (i == j) dp[j] = maxArray[j - 1] + array[i];
//                else dp[j] = Math.max(dp[j - 1], maxArray[j - 1]) + array[i];
                dp[j] = Math.max(dp[j - 1], maxArray[j - 1]) + array[j];

                maxArray[j-1] = res;
                if (res < dp[j]) res = dp[j];
            }
        }

        System.out.println(res);
    }

}